package org.hzero.business.report.builder;

import org.hzero.business.report.dto.KnifeReportHeaderColumn;
import org.hzero.business.report.dto.KnifeReportLineColumn;
import org.hzero.business.report.enums.ColumnOrderEnum;

import java.util.List;

/**
 * 报表字段构建，结合KnifeReportHeaderColumnAnnotation和KnifeReportLineColumnAnnotation注解生成
 *
 * @author: tianhao.luo@hand-china.com 2021/2/19  16:08
 */
public interface KnifeReportColumnsBuilder {
    /**
     * 构建添加了KnifeReportHeaderColumnAnnotation注解的字段
     *
     * @param columnOrderEnum 头的列字段
     * @return 报表头字段
     */
    List<KnifeReportHeaderColumn> buildHeaderColumns(ColumnOrderEnum columnOrderEnum);

    /**
     * 构建添加了KnifeReportLineColumnAnnotation注解的字段
     *
     * @param columnOrderEnum 行的列字段
     * @return 报表行字段
     */
    List<KnifeReportLineColumn> buildLineColumns(ColumnOrderEnum columnOrderEnum);
}
